package org.wdcode.back.po;

import java.io.Serializable;

import org.wdcode.back.helper.CompanyHelper;
import org.wdcode.back.helper.UserHelper;
import org.wdcode.common.tools.Conversion;
import org.wdcode.common.util.CommonUtil;

/**
 * 公司实体
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-23
 */
public final class Company extends BaseBackStateEntityBean implements Serializable {
	// 序列化ID
	private static final long	serialVersionUID	= -615586426218828384L;

	// 公司地址
	private String				address;
	// 公司电话
	private String				phone;
	// 上级公司ID
	private Integer				companyId;
	// 公司管理人ID
	private Integer				userId;
	// 公司网址
	private String				webSite;

	// 公司实体
	private Company				company;
	// 用户实体
	private User				user;

	/**
	 * 获得公司实体
	 * @return 公司实体
	 */
	public Company getCompany() {
		return CommonUtil.isEmpty(company) ? setCompany(companyId) : company;
	}

	/**
	 * 设置公司实体
	 * @param companyId 公司ID
	 * @return 公司实体
	 */
	public Company setCompany(Integer companyId) {
		return company = CompanyHelper.getHelper().get(Conversion.toInt(companyId));
	}

	/**
	 * 设置管理人实体
	 * @param userId 管理人ID
	 * @return 管理人实体
	 */
	public User setUser(Integer userId) {
		return user = UserHelper.getHelper().get(Conversion.toInt(userId));
	}

	/**
	 * 获得管理人实体
	 * @return 管理人实体
	 */
	public User getUser() {
		return CommonUtil.isEmpty(user) ? setUser(userId) : user;
	}

	/**
	 * 获得公司地址
	 * @return 公司地址
	 */
	public String getAddress() {
		return this.address;
	}

	/**
	 * 设置公司地址
	 * @param address 公司地址
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * 获得公司电话
	 * @return 公司地址
	 */
	public String getPhone() {
		return this.phone;
	}

	/**
	 * 设置公司电话
	 * @param phone 公司电话
	 */
	public void setPhone(String phone) {
		this.phone = phone;
	}

	/**
	 * 获得上级公司ID
	 * @return 上级公司ID
	 */
	public Integer getCompanyId() {
		return this.companyId;
	}

	/**
	 * 设置上级公司ID
	 * @param belong 上级公司ID
	 */
	public void setCompanyId(Integer belong) {
		this.companyId = belong;
	}

	/**
	 * 获得公司管理人ID
	 * @return 公司管理人ID
	 */
	public Integer getUserId() {
		return this.userId;
	}

	/**
	 * 设置公司管理人ID
	 * @param userId 公司管理人ID
	 */
	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	/**
	 * 获得公司网址
	 * @return
	 */
	public String getWebSite() {
		return this.webSite;
	}

	/**
	 * 设置公司网址
	 * @param webSite 公司网址
	 */
	public void setWebSite(String webSite) {
		this.webSite = webSite;
	}
}